//引入vuex

import { createStore } from 'vuex'
  import cart from './modules/cart'
  import me from './modules/me'
  import layout from './modules/layout'
  import play from './modules/play'
  import addRouter from './modules/addRouter'
//创建 vuex实例对象

let store = createStore({
  state: {  //存放数据 =》这个数据是响应式的 =》 vue.reactive 进行代理
    isNavShow: false,
    age: 30,
    nums: 20
  },
  getters: { //相当于 计算属性 ，具有缓存机制 3.0，  =>vue.computed 代理成计算属性
    getSix(state) { //参数1 state

      return state.age + 5
    }
  },
  mutations: { //定义方法 唯一修改 state 中的数据 ，写同步 ,订阅发布者模式
    changeAge(state, val) {  //参数1  state   参数2  在调用这个方法的时候，传递是参数


      state.age = state.age + 1
    },
    changeNums(state, val) {
      state.nums = state.nums + val
    }
  },
  actions: { // 就是获取到异步的数据，在触发 mutations中定义方法
    ayNums({ commit }) { //参数1 仓库  参数2 在调用这个方法的时候，传递是参数
      setTimeout(() => {
        let data = 100
        commit('changeNums', data)
      }, 1000);
    }

  },
  modules:{  //当我们项目很大，有很多的模块，
     // 购物车模块 =》 存放的全局数据
     
     cart:cart,
     me:me,
     layout:layout,
     play:play,
     addRouter:addRouter
  }




})

export default store